package com.summer.core.service.impl;

import javax.annotation.Resource;

import org.springframework.stereotype.Service;

import com.summer.core.dao.FieldDao;
import com.summer.core.entity.Field;
import com.summer.core.entity.STable;
import com.summer.core.service.FieldService;

/**
 * 字段service实现 
 * @author wwwlike
 *
 */
@Service
public class FieldServiceImpl extends BaseServiceImpl<Field, String, FieldDao>
		implements FieldService {

	@Resource
	public void setDao(FieldDao dao) {
		this.dao = dao;
	}
	
	public void addTableFields(STable table,String className) throws SecurityException, InstantiationException, IllegalAccessException, ClassNotFoundException
	{
		//获得自己的所有字段 包括 但是不包含父类的
		java.lang.reflect.Field[] field=Class.forName(className).getDeclaredFields();
		
		//获得所有公有的字段，可以取到父类的
		java.lang.reflect.Field[]  field1=Class.forName(className).getFields();
		 int sort=0;
		for(int i=0;i<field1.length;i++)
		{
			sort++;
			Field fieldtemp=new Field();
			fieldtemp.setTable(table);
			fieldtemp.setSort(sort);
			fieldtemp.setEn_name(field1[i].getName());
			fieldtemp.setName(field1[i].getName());
			if(field1[i].getName().equals("id"))
			{
				fieldtemp.setIs_pk(true);
			}
			fieldtemp.setField_type(field1[i].getType().getName());
			save(fieldtemp);
		}
		
		for(int i=0;i<field.length;i++)
		{
			sort++;
			Field fieldtemp=new Field();
			fieldtemp.setTable(table);
			fieldtemp.setSort(sort);
			fieldtemp.setEn_name(field[i].getName());
			fieldtemp.setName(field[i].getName());
			if(field[i].getName().equals("id"))
			{
				fieldtemp.setIs_pk(true);
			}
			fieldtemp.setField_type(field[i].getType().getName());
			save(fieldtemp);
		}
		
		
	}

	
}
